Computer programs are implemented in countless ways in modem life to provide control, monitoring and other capabilities to a variety of systems. Although some standardized programs are used ubiquitously, many (if not most) modem systems require at least some programming that is uniquely tailored for the particular purposes of the systems. For example, personal computers are increasingly commonly being employed to operate complicated control or monitoring programs within the home, where a given program is specifically intended for use with respect to a particular house. Also for example, industrial controllers, which are commonly used for controlling industrial processes or manufacturing equipment, typically require control programs that are uniquely designed for the particular industrial process. Such programs not only may allow for the control of various processes, but also may provide human machine interfaces (HMIs), which often depict a graphic representation or all or part of the process animated to show its current operating state.
Accordingly, it is important to be able to efficiently and easily develop unique or custom-tailored software programs for a variety of systems in a variety of environments. In U.S. patent application Ser. No. 09/404,771, which was filed on Sep. 24, 1999, and which is hereby incorporated by reference herein, a system is described that allows templates to be associated with portions of a model of an industrial process, typically in response to commands received from a program designer as provided by way of a computer terminal. Once the templates are associated with portions of the area-model, the templates are instantiated into objects that pertain to the particular portions/components. During the instantiation process, the system automatically renames those of the variables of the instantiated objects that must be renamed in order to allow the objects to operate in concert with one another as an overall control program.
Though effective, the above-described system is designed for use with templates and objects that use (or have been created using) specific types of data formats associated with particular software applications, particularly batch-centric applications (e.g., following the S88 format). That is, program designers are limited to using particular types of applications to create templates, to create projects (or area-models associated with the projects), and instantiating templates to create objects. Consequently, a variety of commonly-used third-party software programs (e.g., MS Word) cannot be readily used by program designers to create templates, projects, and objects. Additionally, while it is sometimes the case that a single program designer will design a given program, it is also commonly the case that multiple program designers will need to collaborate in the designing of a control program. For example, programs now can be developed through the use of programs, files and other resources that exist at a variety of locations, and be developed through the efforts of multiple computer programmers or other users, who may be interconnected with one another by way of a network such as the internet or World Wide Web. Further, regardless of whether a particular control program is designed by a single individual using resources located at a single location, the templates, objects and other tools that are stored by a given system for developing programs may be of interest to a number of program designers with respect a variety of different control programs that are under development. Additionally despite the frequent need for tailoring of programs, a given customized control program may nevertheless be applicable to the operation of more than a single controller in a single circumstance.
While it may be desirable that a given program or tools used in designing programs be accessible to multiple parties or controllers, allowing multiple points of access to such information can be problematic. In particular, if multiple parties are able to access, modify, and store control program information, there is the possibility that one of the parties will make a change to the information that is not desired by others of the parties. Indeed, some parties may not be aware that such changes have been made. Indeed, there is even the risk that unauthorized parties will modify the stored information in a manner that is undesirable. Also, there is the possibility that a finished control program that is to be implemented on a controller will be changed by a party who is not aware of the fact that the control program is a finished form.
Therefore, it would be advantageous if existing systems and methods for developing software programs could be improved in several ways. In particular, it would be advantageous if existing systems were capable of handling and utilizing data in a variety of formats associated with many commonly-used third party software programs, rather than simply specialized data formats. It would further be advantageous if such systems could import, export, call up, and extract data in a variety of such formats, and if such systems were able to communicate with a variety of third party applications with respect to such data. It would additionally be advantageous if such systems were able to communicate with multiple program designers, to allow those program designers to gain access to and modify information stored on the systems, without significant risk that information stored on the systems would be changed in an unexpected or problematic manner.